﻿Imports Microsoft.DirectX
Public Class LandschaftstexturZugbruecke
    Inherits ObjektLandschaftsTextur
    ''' <summary>
    ''' 0=Zu 1=Offen
    ''' </summary>
    ''' <remarks></remarks>
    Dim Bruecken(1) As Objekt3D


    Public Sub New()
        ID = "ZUGBRUECKE"
        Landschaftsname = "Zugbruecke"
        Deckung = 0
        Tarnung = False
        KP = -1
        TexturenLaden(New String() {"Zugbruecke+N+S", "Zugbruecke+O+W"})
        Normal = -1
        Ausrichtungslandschaften = New String() {"FLUSS", "SEE", "RIFF", "STRAND", "SUMPF", "BAUBRUECKE", "RAUESEE", "NEBEL"}
        Gross = True
        If DataSettings.draw3D Then
            Ini3D()
        End If
    End Sub

    Public Overrides Sub Malen3D(ByVal p_MatCube As Microsoft.DirectX.Matrix, ByVal Landschaft As ObjektLandschaft)
        Malen3D(p_MatCube, "SEE", Landschaft)

        Dim ind As Integer = 0 '0=Zu 1=Offen
        Dim E As ObjektEinheit = Objektverwalter.Spielfeld.Einheiten(Landschaft.KooX, Landschaft.KooY, 0)
        If E Is Nothing Then E = Objektverwalter.Spielfeld.AktuelleEinheit 'dann eben die aktuelle Einheit..
        If E Is Nothing Then
            'hmm immer noch keine... dann einfach so lassen wie sie ist. (also auf "Zu" setzten)
        Else
            'eine Einheit! das ist leicht..
            If E.IsSeaUnit Then
                'Fuer die machen wir besser die Bruecke hoch, auch wenn sie vom Feind ist.
                ind = 1
            Else
                ind = 0 'fuer alle anderen lassen wir die Bruecke unten. Ist ja standard. (OK bei Flugzeugen koennte man eigentlich machen was man will.
            End If
        End If
        Dim Rot As Single = 0
        Dim Ausr As String = AusrichtungVereinfachen(AusrichtungInvertieren(MyBase.Ausrichtung(Landschaft.BildID)), Rot)
        Dim Mat As Matrix = Matrix.RotationY(Rot)
        Mat.M41 = p_MatCube.M41 + 0.5
        Mat.M42 = p_MatCube.M42
        Mat.M43 = p_MatCube.M43 + 0.5
        Bruecken(ind).Malen(Mat)
    End Sub

    Public Overrides Sub Ini3D()
        Bruecken(0) = New Objekt3D
        Bruecken(1) = New Objekt3D
        Bruecken(0).MeshBildLaden(DataSettings.Resourcenpfad + "Terrain\Meshes\ZugBruecke_u.x")
        Bruecken(1).MeshBildLaden(DataSettings.Resourcenpfad + "Terrain\Meshes\ZugBruecke_o.x")
    End Sub

    Public Overrides Sub Tick()

    End Sub
End Class
